﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace NAVE_Alice_demo.Cena08
{
    class MensagemConfirmacao
    {
        #region Variáveis
        /// <summary>
        /// Imagem da mensagem
        /// </summary>
        private Texture2D t2d_imagem;
        /// <summary>
        /// Retangulo do local onde o botão fica na imagem
        /// </summary>
        private Rectangle rec_botao;

        /// <summary>
        /// Mouse Anterior
        /// </summary>
        private MouseState mouseAnterior;

        #endregion

        #region Construtor
        /// <summary>
        /// Construtor da classe
        /// </summary>
        /// <param name="t2d_imagem">Recebe imagem da mensagem</param>
        /// <param name="rec_botao">Recebe retangulo do local onde o botão fica</param>
        public MensagemConfirmacao(Texture2D t2d_imagem, Rectangle rec_botao)
        {
            this.t2d_imagem = t2d_imagem;
            this.rec_botao = rec_botao;
        }
        #endregion

        #region Métodos

        /// <summary>
        /// Verifica se o botão de confirmação da mensagem foi clicado ou não
        /// </summary>
        /// <param name="mouse">Estado do mouse no jogo</param>
        /// <returns>retorna o resultado da verificação</returns>
        public bool Confirmado(MouseState mouse)
        {
            if (mouse.X >= rec_botao.X && mouse.X <= rec_botao.X + rec_botao.Width &&
                mouse.Y >= rec_botao.Y && mouse.Y <= rec_botao.Y + rec_botao.Height)
            {
                if (mouse.LeftButton == ButtonState.Pressed && mouseAnterior.LeftButton == ButtonState.Released)
                    return true;
            }
            mouseAnterior = mouse;
            return false;
        }

        /// <summary>
        /// Desenhe
        /// </summary>
        /// <param name="spriteBatch">Desenhar na tela de jogo</param>
        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(t2d_imagem, Vector2.Zero, Color.White);
        }

        #endregion
    }
}
